مقاله هوش مصنوعی در pdf
نوشته شده به وسیله ی علی در تاریخ 95/3/11:: 3:32 صبح
مقاله هوش مصنوعی در pdf دارای 185 صفحه می باشد و دارای تنظیمات و فهرست کامل در microsoft word می باشد و آماده پرینت یا چاپ است
فایل ورد مقاله هوش مصنوعی در pdf کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه و مراکز دولتی می باشد.
این پروژه توسط مرکز مرکز پروژه های دانشجویی آماده و تنظیم شده است
توجه : توضیحات زیر بخشی از متن اصلی می باشد که بدون قالب و فرمت بندی کپی شده است
بخشی از فهرست مطالب پروژه مقاله هوش مصنوعی در pdf
چکیده 1
مقدمه 2
فصل اول : کلیات موضوع
تعریف و طبیعت هوش مصنوعی 7
پیدایش و پیشرفت هوش مصنوعی 8
هوش مصنوعی و هوش انسانی 12
شاخههای هوش مصنوعی 14
فلسفه هوش مصنوعی 27
ویژگی های هوش مصنوعی 48
دو فرضیه در هوش مصنوعی 52
انواع هوش مصنوعی 53
کاربرد هوش مصنوعی 57
معمای هوش الکترونیک ، مبانی و شاخههای علم هوش مصنوعی 59
چالشهای بنیادین هوشمصنوعی 64
فصل دوم : هوش مصنوعی در بازیهای کامپیوتری
هوش مصنوعی در بازیهای کامپیوتری 71
بازیهای تأثیرگذار در هوشمصنوعی 88
فصل سوم : تکنیک ها وزبانهای برنامه نویسی هوش مصنوعی
تکنیک ها وزبانهای برنامه نویسی هوش مصنوعی118
مثالی از برنامهنویسی شیءگرا در شبکههای عصبی و هوش مصنوعی163
سخن آخر179
فهرست منابع180
چکیده
هدف از این پروژه آشنائی با هوش مصنوعی به عنوان سمبل ونماد دوران فراصنعتی و نقش و کاربرد آن در صنایع و مؤسساتتولیدی میباشد. بدین منظور، این موضوع در قالب 3 فصل ارائه میشود. در (فصل اول) کلیات هوش مصنوعی موردمطالعه قرار میگیرد و سئوالاتی نظیر این که هوش مصنوعیچیست؟ تفاوت هوشمصنوعی و هوش طبیعی (انسانی) درچیست؟ شاخههای عمده هوش مصنوعی کدامند؟ و نهایتأ، اجزایهوش مصنوعی نیز تشریح میشود ،کاربردهای هوش مصنوعیدر صنایع و مؤسساتتولیدی، بخصوص در زمینهسیستمهای خبره وآدموارهها مورد مطالعه وتجزیه و تحلیل قرارمیگیرد. ودر فصل دوم به بررسی هوش مصنوعی در بازی های کامپیوتری و در فصل سوم به بررسی تکنیک برنامه نویسی در هوش مصنوعی مورد مطالعه قرار می گیرد
مقدمه
هوش مصنوعی به هوشی که یک ماشین از خود نشان میدهد و یا به دانشی در کامپیوتر که سعی در ایجاد آن دارد گفته میشود. بیشتر نوشته ها و مقاله های مربوط به هوش مصنوعی آن را “دانش شناخت و طراحی مامورهای هوشمند تعریف کرده اند. یک مامور هوشمند سیستمی است که با شناخت محیط اطراف خود, شانس موفقیت خود را بالا میبرد جان مکارتی که واژه هوش مصنوعی را در سال 1956 استفاده نمود, آن را دانش و مهندسی ساخت ماشین های هوشمند” تعریف کرده است. تحقیقات و جستجوهایی انجام شده برای رسیدن به ساخت چنین ماشین هایی مرتبط با بسیاری از رشته های دانشیک دیگر میباشد, مانند دانش کامپیوتر, روانشناسی, فلسفه, عصب شناسی, دانش ادراک, تئوری کنترل, احتمالات, بهینه سازی و منطق
« هوش مصنوعی، دانش ساختن ماشین ها یا برنامههای هوشمند است. » همانگونه که از تعریف فوق-که توسط یکی از بنیانگذاران هوش مصنوعی ارائه شده است- برمیآید،حداقل به دو سؤال باید پاسخ داد
1ـ هوشمندی چیست؟
2ـ برنامههای هوشمند، چه نوعی از برنامهها هستند؟تعریف دیگری که از هوش مصنوعی میتوان ارائه داد به قرار زیر است
« هوش مصنوعی، شاخهایست از علم کامپیوتر که ملزومات محاسباتی اعمالی همچون ادراک (Perception)، ستدلال(reasoning) و یادگیری(learning) را بررسی کرده و سیستمی جهت انجام چنین اعمالی ارائه میدهد.»و در نهایت تعریف سوم هوش مصنوعی از قرار زیر است
«هوش مصنوعی، مطالعه روشهایی است برای تبدیل کامپیوتر به ماشینی که بتواند اعمال انجام شده توسط انسان را انجام دهد.» به این ترتیب میتوان دید که دو تعریف آخر کاملاً دو چیز را در تعریف نخست واضح کردهاند
1ـ منظور از موجود یا ماشین هوشمند چیزی است شبیه انسان
2ـ ابزار یا ماشینی که قرار است محمل هوشمندی باشد یا به انسان شبیه شود، کامپیوتر است. هر دوی این نکات کماکان مبهم و قابل پرسشند. آیا تنها این نکته که هوشمندترین موجودی که میشناسیم، انسان است کافی است تا هوشمندی را به تمامی اعمال انسان نسبت دهیم؟ حداقل این نکته کاملاً واضح است که بعضی جنبههای ادراک انسان همچون دیدن و شنیدن کاملاً ضعیفتر از موجودات دیگر است. علاوه بر این، کامپیوترهای امروزی با روشهایی کاملاً مکانیکی(منطقی) توانستهاند در برخی جنبههای استدلال، فراتر از تواناییهای انسان عمل کنند. بدین ترتیب، آیا میتوان در همین نقطه ادعا کرد که هوش مصنوعی تنها نوعی دغدغه علمی یا کنجکاوی دانشمندانه است و قابلیت تعمق مهندسی ندارد؟(زیرا اگر مهندسی، یافتن روشهای بهینه انجام امور باشد، به هیچ رو مشخص نیست که انسان اعمال خویش را به گونهای بهینه انجام میدهد). به این نکته نیز باز خواهیم گشت. اما همین سؤال را میتوان از سویی دیگر نیز مطرح ساخت، چگونه میتوان یقین حاصل کرد که کامپیوترهای امروزین، بهترین ابزارهای پیادهسازی هوشمندی هستند؟
رؤیای طراحان اولیه کامپیوتر از بابیج تا تورینگ، ساختن ماشینی بود که قادر به حل تمامی مسائل باشد، البته ماشینی که در نهایت ساخته شد(کامپیوتر) به جز دسته ای خاص از مسائلقادر به حل تمامی مسائل بود. اما نکته در اینجاست که این «تمامی مسائل» چیست؟ طبیعتاً چون طراحان اولیه کامپیوتر، منطقدانان و ریاضیدانان بودند، منظورشان تمامی مسائل منطقی یا محاسباتی بود. بدین ترتیب عجیب نیست، هنگامی که فوننیومان سازنده اولین کامپیوتر، در حال طراحی این ماشین بود، کماکان اعتقاد داشت برای داشتن هوشمندی شبیه به انسان، کلید اصلی، منطق(از نوع به کار رفته در کامپیوتر) نیست، بلکه احتمالاً چیزی خواهد بود شبیه ترمودینامیک!
به هرحال، کامپیوتر تا به حال به چنان درجهای از پیشرفت رسیده و چنان سرمایهگذاری عظیمی برروی این ماشین انجام شده است که به فرض این که بهترین انتخاب نباشد هم، حداقل سهلالوصولترین و ارزانترین و عمومیترین انتخاب برای پیادهسازی هوشمندیست. بنابراین ظاهراً به نظر میرسد به جای سرمایهگذاری برای ساخت ماشینهای دیگر هوشمند، میتوان از کامپیوترهای موجود برای پیادهسازی برنامههای هوشمند استفاده کرد و اگر چنین شود، باید گفت که طبیعت هوشمندی ایجاد شده حداقل از لحاظ پیادهسازی، کاملاً با طبیعت هوشمندی انسانی متناسب خواهد بود، زیرا هوشمندی انسانی، نوعی هوشمندی بیولوژیک است که با استفاده از مکانیسمهای طبیعی ایجاد شده، و نه استفاده از عناصر و مدارهای منطقی. در برابر تمامی استدلالات فوق می توان این نکته را مورد تاُمل و پرسش قرار داد که هوشمندی طبیعی تا بدان جایی که ما سراغ داریم، تنها برمحمل طبیعی و با استفاده از روش های طبیعت ایجاد شده است. طرفداران این دیدگاه تا بدانجا پیش رفتهاند که حتی ماده ایجاد کننده هوشمندی را مورد پرسش قرار داده اند، کامپیوتر از سیلیکون استفاده می کند، در حالی که طبیعت همه جا از کربن سود برده است. مهم تر از همه، این نکته است که در کامپیوتر، یک واحد کاملاً پیچیده مسئولیت انجام کلیه اعمال هوشمندانه را بعهده دارد، در حالی که طبیعت در سمت و سویی کاملاً مخالف حرکت کرده است. تعداد بسیار زیادی از واحدهای کاملاً ساده (بعنوان مثال از نورونهای شبکه عصبی) با عملکرد همزمان خود (موازی) رفتار هوشمند را سبب می شوند. بنابراین تقابل هوشمندی مصنوعی و هوشمندی طبیعی حداقل در حال حاضر تقابل پیچیدگی فوق العاده و سادگی فوق العاده است. این مساُله هم اکنون کاملاً به صورت یک جنجال(debate) علمی در جریان است. در هر حال حتی اگر بپذیریم که کامپیوتر در نهایت ماشین هوشمند مورد نظر ما نیست، مجبوریم برای شبیهسازی هر روش یا ماشین دیگری از آن سود بجوییم
تعریف و طبیعت هوش مصنوعی
هنوز تعریف دقیقی که مورد قبول همه دانشمندان این علم باشد برای هوش مصنوعی ارائه نشدهاست، و این امر، به هیچ وجه مایه تعجّب نیست. چرا که مقوله مادر و اساسیتر از آن، یعنی خود هوش هم هنوز بطور همهجانبه و فراگیر تن به تعریف ندادهاست. در واقع، میتوان نسلهایی از دانشمندان را سراغ گرفت که تمام دوران زندگی خود را صرف مطالعه و تلاش در راه یافتن جوابی به این سؤال عمده نمودهاند که: هوش چیست؟
اما اکثر تعریفهایی که در این زمینه ارایه شدهاند بر پایه یکی از 4 باور زیر قرار میگیرند
سیستمهایی که به طور منطقی فکر میکنند
سیستمهایی که به طور منطقی عمل میکنند
سیستمهایی که مانند انسان فکر میکنند
سیستمهایی که مانند انسان عمل میکنند
شاید بتوان هوش مصنوعی را این گونه توصیف کرد:«هوش مصنوعی عبارت است از مطالعه این که چگونه کامپیوترها را میتوان وادار به کارهایی کرد که در حال حاضر انسانها آنها رابهتر انجام میدهند»
پیدایش و پیشرفت هوش مصنوعی
در اواسط دهه 1990، یک بازی تیراندازی اول شخص منتشر شد که به کاربر امکان میداد بازی را برای خود سفارشی (Customize) کند. این بازی، Quake بود که در فناوری ساخت بازیهای کامپیوتری یک نوآوری محسوب میشد. Quake اولین بازی سهبعدی واقعی است. به این معنی که بهصورت بلادرنگ در سه بعد رندر میشود. (پیش از آن spiritها یا گرافیکهای دوبعدی به صورت سهبعدی شبیهسازی میشدند). چیزهای دیگری نیز در این بازی وجود داشت که موردتوجه قرار گرفت؛ مانند نشانه گرفتن سلاح به بالا یا پایین. زیرا حرکتدادن سلاح به بالا یا پایین نیازمند پردازش در بعد سوم، یعنی عمق یا ارتفاع در یک محیط سهبعدی است
بازی Quake از موجودات مجازی هوشمند (bot) هر چند با هوش مصنوعی کم، بهره برده بود. هوش مصنوعی یکbot در بازیهای تیراندازی اول شخص، میتواند در دو بخش بررسی شود: یکی ناوبری و حرکت، و دیگری مبارزه. اگر بخواهیم رفتار bot نزدیک به رفتار یک انسان باشد، پیادهسازی آن بسیار پیچیدهتر از هوشمصنوعی در مبارزه است. هر چند پیادهسازی هوش مصنوعی در مبارزه نیز با هر استاندارد و روشی آسان نیست
برای اینکه باتها بتوانند حرکت کنند، باید بتوانند درباره اشیا و موجودات پیرامون خود یاد بگیرند. این ایده بسیار اساسی، میتواند به بخشهای بیشتری مانند قابلیت آنالیز هنگام حرکت در یک جهت خاص و سپس قابلیت پیدا کردن اشیا و شخصیتهای مجازیِ مقابل در یک مرحله بازی گسترش یابد. این ایدهها شاید ساده به نظر برسند، ولی واقعاً اینگونه نیست؛ چرا که یک bot باید بتواند در برابر دو چیز واکنش درستی داشته باشد: دیوارها و فضاهای خالی. دیوارها شامل همه چیزهایی است که نمیتوان از آن عبور کرد؛ مانند خود یک دیوار، نرده، شخصیتهای مجازی، جعبهها، پلههای رو به بالا و ; فضاهای خالی نیز هر جایی است که زمین همواره نیست یا دچار شکستگی است؛ مانند یک چاله، پلههای رو به پایین و ; . برای رویارویی با این دو مانع، یک روش خوب، افزایش کارایی تابع جستجو است. این تابع که در بازی Quake معرفی شد، به بات امکان میدهد یک خط را از یکی از بُعدهای X-Y-Z تا بُعد بعدی جستجو کند و اطلاعاتی مانند اینکه <این خط به کجا میرود، چه چیزی آن را قطع میکند و ;> را دریافت کند
دو روش برای گذشتن یکبات از یک مرحله، بیشتر مورد استفاده قرار میگیرد: روش نخست از گرههای گراف وضعیت و روش دوم از مسیرهای (path) آن استفاده میکند. در یک محیط براساس روش گره، گرهها در قسمت قوانین بهینهسازی مرحله (level) که به وسیله سازنده یک bot تعریف شده است قرار دارند. هر گره میتواند اطلاعات بات درباره قسمت خاصی از محیط را بدهد. وضعیت مبارزه، کاربردهای زیادی برای تعدادی از الگوریتمهای جستجو یا پروسه تصمیمگیری دارد. در یک مبارزه، باید برای تشخیص اینکه کدام کار برای بات بهتر است حرکتهای رقیب پیشبینی شود
روش Minimax، در مواقعی که یک تابع هیورستیک خوب (یک هیورستیک برخلاف الگوریتم، ممکن است به یک پاسخ قطعی نرسد) در دست باشد، میتواند یک حرکت خوب را انجام دهد. از آنجا که minimax روش کندی است، میتوان از Partial Minimax استفاده کرد که در الگوریتمهای تصمیمگیری به کار میرود؛ هر چند این روش هنوز چندان پذیرفته نشده است. پژوهشگران هوش مصنوعی پیشنهاد میکنند، تنها زمانی از Partial Minimax استفاده کنید که یک گزینه بدیهی در دست داشته باشید (زمانی که متغیر minimax با ارزش بیشتر کاملا بهتر از متغیر دیگر باشد). در غیر اینصورت اگر ارزش همه متغیرها نزدیک به هم است، از استراتژی دیگری استفاده کنید. حال آنکه در یک بازی بلادرنگ برای یکbot معمولاً گزینه بدیهی وجود ندارد تا آن را برگزینید. هر گزینه به یک استراتژی متفاوت وابسته است که bot میتواند آن را انتخاب کند
شاید بسیاری از طرفداران روش minimax به ارزش سرعت، هنگام بررسی کارایی یک بات در بازی بلادرنگ واقف نیستند؛ مانند کمترین زمانی که یک بات نیاز دارد تا درباره یک تصمیم بیندیشد، گزینههای بیشتری که برای تصمیمگیری ایجاد میکند، کیفیت واکنش بهتر و سطح خبرگی. به یاد داشته باشید که یک بات در برابر مغز یک انسان که میتواند دنیای سهبعدی را با کمک حس و تخیل خود تفسیر کند، قرار میگیرد. برای نمونه در یک مبارزه، یک بات نیاز به نشانهگیری به سوی دشمن خود، پیشبینی حرکت آن و; دارد که همه، بدون داشتن درک واقعی از محیطی که در آن قراردارد انجام میشود
برای دستیابی به بیشترین سرعت، بیشتر از الگوریتم *A استفاده میشود. هر چند این الگوریتم پیشرفته نیست، ولی سرعت بالایی دارد. پیچیدگی زمانی این الگوریتم ((O(log h(n است که (h(n پیچیدگی تابع هیورستیک است. *A یک الگوریتم جستجوی “اول عمق” است که هیورستیک آن را کنترل میکند و میتواند مناسبترین شاخه بعدی گراف را حدس بزند و در هر عمق، تنها شاخهای که ارزش هیورستیک بهتری دارد، گسترش مییابد.
هوش مصنوعی و هوش انسانی:
برای شناخت هوش مصنوعی شایسته است تا تفاوت آن را با هوشانسانی به خوبی بدانیم. مغز انسان از میلیاردها سلول یا رشته عصبیدرست شده است و این سلولها به صورت پیچیدهای به یکدیگرمتصلاند. شبیهسازی مغز انسان میتواند از طریق سختافزار یا نرمافزارانجام گیرد. تحقیقات اولیه نشان داده است شبیهسازی مغز، کاریمکانیکی و ساده میباشد. برای مثال، یک کرم دارای چند شبکه عصبیاست. یک حشره حدود یک میلیون رشته عصبی دارد و مغز انسان ازهزار میلیارد رشته عصبی درست شده است. با تمرکز و اتصال رشتههایعصبی مصنوعی میتوان واحد هوش مصنوعی را درست کرد
هوش انسانی بسیار پیچیدهتر و گستردهتر از سیستمهای رایانهایاست و توانمندیهای برجستهای مانند: استدلال، رفتار، مقایسه، آفرینشو بکار بستن مفهومها را دارد
هوش انسانی توان ایجاد ارتباط میان موضوعها و قیاس ونمونه سازیهای تازه را دارد. انسان همواره قانونهای تازهای میسازد و یاقانون پیشین را در موارد تازه بکار میگیرد. توانایی بشر در ایجادمفهومهای گوناگون در دنیای پیرامون خود، از ویژگیهای دیگر اوست.مفهومهای گستردهای همچون روابط علت و معلولی، رمان و یامفهومهای سادهتری مانند گزینش وعدههای خوراک (صبحانه، ناهار وشام) را انسان ایجاد کرده است. اندیشیدن در این مفهومها و بکاربستنآنها، ویژه رفتار هوشمندانه انسان است
هوش مصنوعی در پی ساخت دستگاههایی است که بتوانندتوانمندهای یاد شده (استدلال، رفتار، مقایسه و مفهوم آفرینی) را از خودبروز دهند. آنچه تاکنون ساخته شده نتوانسته است خود را به این پایهبرساند، هر چند سودمندیهای فراوانی به بار آورده است
نکته آخر اینکه، یکی از علل رویارویی با مقوله هوش مصنوعی،ناشی از نامگذاری نامناسب آن میباشد. چنانچه جان مککارتی در سال1956 میلادی آن را چیزی مانند «برنامهریزی پیشرفته» نامیده بود شاید جنگ و جدلی در پیرامون آن رخ نمیداد
شاخههای هوش مصنوعی:
امروزه دانش مدرن هوش مصنوعی به دو دسته اصلی تقسیم میشود: یکی <هوش مصنوعی سمبولیک یا نمادین> (Symbolic AI) و دیگری هوش غیرسمبولیک که پیوندگرا (Connection AI) نیز نامیده میشود
هوش مصنوعی سمبولیک از رهیافتی مبتنی بر محاسبات آماری پیروی میکند و اغلب تحت عنوان <یادگیری ماشین> یا (Machine Learning) طبقهبندی میشود. هوش سمبولیک میکوشد سیستم و قواعد آن را در قالب سمبولها بیان کند و با نگاشت اطلاعات به سمبولها و قوانین به حل مسئله بپردازد. در میان معروفترین شاخههای هوش مصنوعی سمبولیک میتوان به سیستمهای خبره (Expert Systems) و شبکههای Bayesian اشاره کرد. یک سیستم خبره میتواند حجم عظیمی از دادهها را پردازش نماید و بر اساس تکنیکهای آماری، نتایج دقیقی را تهیه کند. شبکههای Bayesian یک تکنیک محاسباتی برای ایجاد ساختارهای اطلاعاتی و تهیه استنتاجهای منطقی از روی اطلاعاتی است که به کمک روشهای آمار و احتمال به دست آمدهاند. بنابراین در هوش سمبولیک، منظور از <یادگیری ماشین> استفاده از الگوریتمهای تشخیص الگوها، تحلیل و طبقهبندی اطلاعات است
اما هوش پیوندگرا متکی بر یک منطق استقرایی است و از رهیافت <آموزش/ بهبود سیستم از طریق تکرار> بهره میگیرد. این آموزشها نه بر اساس نتایج و تحلیلهای دقیق آماری، بلکه مبتنی بر شیوه آزمون و خطا و <یادگیری از راه تجربه> است. در هوش مصنوعی پیوندگرا، قواعد از ابتدا در اختیار سیستم قرار نمیگیرد، بلکه سیستم از طریق تجربه، خودش قوانین را استخراج میکند. متدهای ایجاد شبکههای عصبی (Neural Networks) و نیز بهکارگیری منطق فازی (Fuzzy Logic) در این دسته قرار میگیرند
برای درک بهتر تفاوت میان این دو شیوه به یک مثال توجه کنید. فرض کنید میخواهیم یک سیستم OCR بسازیم. سیستم OCR نرمافزاری است که پس از اسکن کردن یک تکه نوشته روی کاغذ میتواند متن روی آن را استخراج کند و به کاراکترهای متنی تبدیل نماید
فلسفه هوش مصنوعی
کلمات کلیدی :